package eiisan.netty;
/**
 * 基本概念
 *
 * Channel
 * 通道，Java NIO中的基础概念,代表一个打开的连接,可执行读取/写入IO操作。
 * Netty 对Channel 的所有I0操作都是非阻塞的。
 *
 * ChannelFuture
 * Java的 Future接口，只能查询操作的完成情况,或者阻塞当前线程等待操作完成。
 * Netty封装一个ChannelFuture接口
 * 我们可以将回调方法传给ChannelFuture，在操作完成时自动执行。
 *
 * Event & Handler
 * Netty 基于事件驱动，事件和处理器可以关联到入站和出站数据流。
 *
 * Encoder & Decoder
 * 处理网络IO时，需要进行序列化和反序列化,转换Java对象与字节流。
 * 对入站数据进行解码,基类是 ByteToMessageDecoder。
 * 对出站数据进行编码,基类是 MessageToByteEncoder。
 *
 * ChannelPipeline
 *
 * 数据处理管道就是事件处理器链。
 * 有顺序、同一Channel的出站处理器和入站处理器在同一个列表中。
 *
 * 小结一下：
 * NioEventLoopGroup 实际上就是个线程池，一个 EventLoopGroup 包含一个或者多个 EventLoop；
 * 一个 EventLoop 在它的生命周期内只和一个 Thread 绑定；
 * 所有有 EnventLoop 处理的 I/O 事件都将在它专有的 Thread 上被处理；
 * 一个 Channel 在它的生命周期内只注册于一个 EventLoop；
 * 每一个 EventLoop 负责处理一个或多个 Channel；
*/
public class NettyServerApplication {

    public static void main(String[] args) {
        HttpServer server = new HttpServer(false,8808);
        try {
            server.run();
        }catch (Exception ex){
            ex.printStackTrace();
        }
    }
}
